home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Programming / ExtraLib / include / rhosigma / settings.bc < prev    next >
Encoding:
Text File  |  2001-05-01  |  4.4 KB  |  109 lines

  1. ' ___________________________________________________________________________
  2. ' |*************************************************************************|
  3. ' |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
  4. ' |*| Set TAB to 4 for best readable file layout.  |*|  Maxon Basic 3.00  |*|
  5. ' |*|______________________________________________|*|____________________|*|
  6. ' |*************************************************************************|
  7. ' |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
  8. ' |*|               |*|  $Id: settings.bc (28.04.01)                      |*|
  9. ' |*| ###### ###### |*|  RhoSigma Source based on NDK 3.1 Includes 40.15  |*|
  10. ' |*| ##  ## ##   # |*| _________________________________________________ |*|
  11. ' |*| ##  ##  ##    |*|                                                   |*|
  12. ' |*| ######   ##   |*|  Useful defines and extensions for NDK includes   |*|
  13. ' |*| ##      ##    |*|                                                   |*|
  14. ' |*| ##     ##   # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
  15. ' |*| ##     ###### |*|  Copyright © 1998-2001 RhoSigma, Roland Heyder    |*|
  16. ' |*|               |*|  All Rights Reserved.                             |*|
  17. ' |*|_______________|*|___________________________________________________|*|
  18. ' |*************************************************************************|
  19. ' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  20.  
  21. '$UNDERLINES
  22.  
  23.             '** enhanced booleans **
  24.  
  25. CONST UPPER%    = 1            'Signum- und Wahrheitswerte zur
  26. CONST EQUAL%    = 0            'Verwendung in Variablen des
  27. CONST LOWER%    = -1        'Typs BOOL
  28. CONST FALSE%    = 0
  29. CONST TRUE%        = -1
  30.  
  31.             '** intuition **
  32.  
  33. CONST DATPOS_C%    = -1        'Text zentrieren
  34. CONST DATPOS_L%    = -2        'Text linksbündig
  35. CONST DATPOS_R%    = -3        'Text rechtsbündig
  36.  
  37. '*** rhosigma / DATEXT() ***
  38. '============================================================================
  39. ' Diese Routine erstellt einen Teilstring des Parameterstrings der Intuition-
  40. ' Routine »DisplayAlert()«. Wahlweise kann der Text automatisch zentriert,
  41. ' oder links- bzw. rechsbündig ausgerichtet werden.
  42. '----------------------------------------------------------------------------
  43. ' Definiert:    settings.bc  (Copyright © 1998-2001 RhoSigma, Roland Heyder)
  44. '
  45. ' Schablone:    xPos%/A/N, yPos%/A/N, Text$/A, EndFlag%/N/S
  46. '
  47. ' Parameter:    xPos%     --> x-Position des Textes,
  48. '                                oder einer der oben definierten DATPOS-Werte
  49. '
  50. '                yPos%     --> y-Position des Textes,
  51. '                                Ausrichtung nach BaseLine des Fonts (topaz/8)
  52. '
  53. '                Text$     --> der Text selbst als Variable oder Konstante
  54. '
  55. '                EndFlag% --> - TRUE% , dann endet hier der Parameterstring
  56. '                             - FALSE%, dann MUSS noch ein weiterer Teilstring
  57. '                                       (SUB-Aufruf) folgen.
  58. '
  59. ' Bemerkung:    Nach Aufruf der Routine für alle einzelnen Teilstrings finden
  60. '                Sie den fertigen Parameterstring in der Variable »Alert$«,
  61. '                welche Sie an »DisplayAlert()« mittels »SADD(Alert$)« über-
  62. '                geben müssen.
  63. '
  64. '                Ein Beispiel für die Benutzung dieser Routine finden Sie in der
  65. '                Datei »demo/AlertDemo.BAS«.
  66. '
  67. '   ACHTUNG:    Sie dürfen in Ihrem Programm keine eigene Stringvariable mit
  68. '   ¯¯¯¯¯¯¯¯    dem Namen »Alert$« verwenden, da diese unweigerlich durch
  69. '                dieses Unterprogramm überschrieben werden würde.
  70. '
  71. '                Außerdem müssen Sie den Parameterstring immer unmittelbar vor
  72. '                dem »DisplayAlert()«-Aufruf definieren, da die Variable »Alert$«
  73. '                jedesmal wieder überschrieben wird, und daher immer nur den zu-
  74. '                letzt erstellten Parameterstring enthält.
  75. '============================================================================
  76.  
  77. SUB DATEXT(xPos%,yPos%,Text$,EndFlag%) STATIC
  78. SHARED Alert$
  79. STATIC lFlag%
  80.  
  81.     IF lFlag%<>FALSE% THEN    ' wird ein neuer ParamString angefangen,
  82.         lFlag%=FALSE%        ' dann »Alert$« erst zurücksetzen
  83.         Alert$=""
  84.     ELSE
  85.         lFlag%=EndFlag%
  86.     END IF
  87.  
  88.     IF xPos%=DATPOS_C% THEN                ' gewünschte Ausrichtung,
  89.         xPos%=(640-(LEN(Text$)*8))/2    ' falls angegeben
  90.     ELSEIF xPos%=DATPOS_L% THEN
  91.         xPos%=12
  92.     ELSEIF xPos%=DATPOS_R% THEN
  93.         xPos%=(640-(LEN(Text$)*8))-12
  94.     END IF
  95.     IF LEN(Text$)/2=INT(LEN(Text$)/2) THEN Text$=Text$+CHR$(32) 'für OS 1.3
  96.  
  97.     Alert$=Alert$+MKI$(xPos%)+CHR$(yPos%)+Text$+CHR$(0)    ' alles erstellen
  98.  
  99.     IF EndFlag%=FALSE% THEN        ' wenn kein END-Flag, dann Continue-Byte
  100.         Alert$=Alert$+CHR$(1)    ' setzen, ansonsten 0-Byte und Adresse
  101.     ELSE                        ' auf gerade setzen
  102.         Alert$=Alert$+CHR$(0)
  103.         WHILE SADD(Alert$) AND 1
  104.             Alert$=Alert$+CHR$(0)
  105.         WEND
  106.     END IF
  107.  
  108. END SUB
  109.